<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="Robot Framework 2.8.4 (Python 2.7.2 on darwin)" name="Generator">
<link rel="icon" type="image/x-icon" href="">
<style media="all" type="text/css">
body {
    background: white;
    color: black;
    font-size: small;
    font-family: sans-serif;
    padding: 0 0.5em;
}
.metadata th {
    text-align: left;
    padding-right: 1em;
}
a.name, span.name {
    font-style: italic;
}
a, a:link, a:visited {
    color: #c30;
}
a img {
    border: 1px solid #c30 !important;
}
a:hover, a:active {
    text-decoration: underline;
    color: black;
}
div.shortcuts {
    margin: 1em 0;
    font-size: 0.9em;
}
div.shortcuts a {
    display: inline-block;
    text-decoration: none;
    white-space: nowrap;
    color: black;
}
div.shortcuts a::first-letter {
    font-weight: bold;
    font-size: 1.05em;
    letter-spacing: 0.1em;
}
div.shortcuts a:hover {
    text-decoration: underline;
}
table.keywords {
    border: 2px solid black;
    border-collapse: collapse;
    empty-cells: show;
    margin: 0.3em 0;
    width: 100%;
}
table.keywords th, table.keywords td {
    border: 2px solid black;
    padding: 0.2em;
    vertical-align: top;
}
table.keywords th {
    background: #bbb;
    color: black;
}
table.keywords td.kw {
    width: 150px;
    font-weight: bold;
}
table.keywords td.arg {
    width: 300px;
    font-style: italic;
}
.footer {
    font-size: 0.9em;
}
/* Docs originating from HTML and reST are wrapped to divs. */
.doc div > *:first-child {
    margin-top: 0;
}
.doc div > *:last-child {    /* Does not work with IE8. */
    margin-bottom: 0;
}
</style>
<style media="print" type="text/css">
body {
    margin: 0;
    padding: 0;
    font-size: 8pt;
}
a {
    text-decoration: none;
}
</style>
<style media="all" type="text/css">
#javascript-disabled {
    width: 600px;
    margin: 100px auto 0 auto;
    padding: 20px;
    color: #2A2A2E;
    border: 1px solid #9A9A9E;
    background: #FAFAFF;
}
#javascript-disabled h1 {
    width: 100%;
    float: none;
}
#javascript-disabled ul {
    font-size: 1.2em;
}
#javascript-disabled li {
    margin: 0.5em 0;
}
#javascript-disabled b {
    font-style: italic;
}
</style>
<style media="all" type="text/css">
.doc > * {
    margin: 0.7em 1em 0.1em 1em;
    padding: 0;
}
.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
    margin: 0.7em 0 0.1em 0;
}
.doc > *:first-child {
    margin-top: 0.1em;
}
.doc table {
    border: 1px solid gray;
    background: transparent;
    border-collapse: collapse;
    empty-cells: show;
    font-size: 0.9em;
}
.doc table th, .doc table td {
    border: 1px solid gray;
    background: transparent;
    padding: 0.1em 0.3em;
    height: 1.2em;
}
.doc table th {
    text-align: center;
    letter-spacing: 0.1em;
}
.doc pre {
    font-size: 1.1em;
    background: #F4F4FF;
}
.doc li {
    list-style-position: inside;
    list-style-type: square;
}
.doc img {
    border: 1px solid gray;
}
.doc hr {
    background: gray;
    height: 1px;
    border: 0;
}
</style>
<script type="text/javascript">
/*! jQuery v1.8.3 jquery.com | jquery.org/license */
(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
</script>
<script type="text/javascript">
/*
 * jQuery Templates Plugin 1.0.0pre
 * http://github.com/jquery/jquery-tmpl
 * Requires jQuery 1.4.2
 *
 * Copyright Software Freedom Conservancy, Inc.
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 */
(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
</script>
<script type="text/javascript">
libdoc = {"doc":"<p>Robot Framework test library for verifying and modifying XML documents.\x3c/p>\n<p>As the name implies, <span class=\"name\">XML\x3c/span> is a test library for verifying contents of XML files. In practice it is a pretty thin wrapper on top of Python's <a href=\"http://docs.python.org/library/xml.etree.elementtree.html\">ElementTree XML API\x3c/a>.\x3c/p>\n<p>The library has the following main usages:\x3c/p>\n<ul>\n<li>Parsing an XML file, or a string containing XML, into an XML element structure and finding certain elements from it for for further analysis (e.g. <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a> and <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keywords).\x3c/li>\n<li>Getting text or attributes of elements (e.g. <a href=\"#Get Element Text\" class=\"name\">Get Element Text\x3c/a> and <a href=\"#Get Element Attribute\" class=\"name\">Get Element Attribute\x3c/a>).\x3c/li>\n<li>Directly verifying text, attributes, or whole elements (e.g <a href=\"#Element Text Should Be\" class=\"name\">Element Text Should Be\x3c/a> and <a href=\"#Elements Should Be Equal\" class=\"name\">Elements Should Be Equal\x3c/a>).\x3c/li>\n<li>Modifying XML and saving it (e.g. <a href=\"#Set Element Text\" class=\"name\">Set Element Text\x3c/a>, <a href=\"#Add Element\" class=\"name\">Add Element\x3c/a> and <a href=\"#Save Xml\" class=\"name\">Save XML\x3c/a>).\x3c/li>\n\x3c/ul>\n<h3 id=\"Table of contents\">Table of contents\x3c/h3>\n<ul>\n<li><a href=\"#Parsing XML\" class=\"name\">Parsing XML\x3c/a>\x3c/li>\n<li><a href=\"#Example\" class=\"name\">Example\x3c/a>\x3c/li>\n<li><a href=\"#Finding elements with xpath\" class=\"name\">Finding elements with xpath\x3c/a>\x3c/li>\n<li><a href=\"#Element attributes\" class=\"name\">Element attributes\x3c/a>\x3c/li>\n<li><a href=\"#Handling XML namespaces\" class=\"name\">Handling XML namespaces\x3c/a>\x3c/li>\n<li><a href=\"#Shortcuts\" class=\"name\">Shortcuts\x3c/a>\x3c/li>\n<li><a href=\"#Keywords\" class=\"name\">Keywords\x3c/a>\x3c/li>\n\x3c/ul>\n<h2 id=\"Parsing XML\">Parsing XML\x3c/h2>\n<p>XML can be parsed into an element structure using <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a> keyword. It accepts both paths to XML files and strings that contain XML. The keyword returns the root element of the structure, which then contains other elements as its children and their children.\x3c/p>\n<p>The element structure returned by <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>, as well as elements returned by keywords such as <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>, can be used as the <span class=\"name\">source\x3c/span> argument with other keywords. In addition to an already parsed XML structure, other keywords also accept paths to XML files and strings containing XML similarly as <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>.\x3c/p>\n<p>When the source is given as a path to a file, the forward slash character (<span class=\"name\">/\x3c/span>) can be used as the path separator regardless the operating system. On Windows also the backslash works, but it the test data it needs to be escaped by doubling it (<span class=\"name\">\\\\\x3c/span>). Using the built-in variable <span class=\"name\">${/}\x3c/span> naturally works too.\x3c/p>\n<h2 id=\"Example\">Example\x3c/h2>\n<p>The following simple example demonstrates parsing XML and verifying its contents both using keywords in this library and in <span class=\"name\">BuiltIn\x3c/span> and <span class=\"name\">Collections\x3c/span> libraries. How to use xpath expressions to find elements and what attributes the returned elements contain are discussed, with more examples, in <a href=\"#Finding elements with xpath\" class=\"name\">Finding elements with xpath\x3c/a> and <a href=\"#Element attributes\" class=\"name\">Element attributes\x3c/a> sections.\x3c/p>\n<p>In this example, as well as in many other examples in this documentation, <span class=\"name\">${XML}\x3c/span> refers to the following example XML document. In practice <span class=\"name\">${XML}\x3c/span> could either be a path to an XML file or it could contain the XML itself.\x3c/p>\n<pre>\n&lt;example&gt;\n  &lt;first id=\"1\"&gt;text&lt;/first&gt;\n  &lt;second id=\"2\"&gt;\n    &lt;child/&gt;\n  &lt;/second&gt;\n  &lt;third&gt;\n    &lt;child&gt;more text&lt;/child&gt;\n    &lt;second id=\"child\"/&gt;\n    &lt;child&gt;&lt;grandchild/&gt;&lt;/child&gt;\n  &lt;/third&gt;\n  &lt;html&gt;\n    &lt;p&gt;\n      Text with &lt;b&gt;bold&lt;/b&gt; and &lt;i&gt;italics&lt;/i&gt;.\n    &lt;/p&gt;\n  &lt;/html&gt;\n&lt;/example&gt;\n\x3c/pre>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${root.tag}\x3c/td>\n<td>example\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${first} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${first.text}\x3c/td>\n<td>text\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Dictionary Should Contain Key\x3c/span>\x3c/td>\n<td>${first.attrib}\x3c/td>\n<td>id\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Text Should Be\" class=\"name\">Element Text Should Be\x3c/a>\x3c/td>\n<td>${first}\x3c/td>\n<td>text\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${first}\x3c/td>\n<td>id\x3c/td>\n<td>1\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>id\x3c/td>\n<td>1\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>1\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Notice that in the example three last lines are equivalent. Which one to use in practice depends on which other elements you need to get or verify. If you only need to do one verification, using the last line alone would suffice. If more verifications are needed, parsing the XML with <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a> only once would be more efficient.\x3c/p>\n<h2 id=\"Finding elements with xpath\">Finding elements with xpath\x3c/h2>\n<p>ElementTree, and thus also this library, supports finding elements using xpath expressions. ElementTree does not, however, support the full xpath syntax, and what is supported depends on its version. ElementTree 1.3 that is distributed with Python and Jython 2.7 supports richer syntax than versions distributed with earlier Python interpreters.\x3c/p>\n<p>The supported xpath syntax is explained below and <a href=\"http://effbot.org/zone/element-xpath.htm\">ElementTree documentation\x3c/a> provides more details. In the examples <span class=\"name\">${XML}\x3c/span> refers to the same XML structure as in the earlier example.\x3c/p>\n<h3 id=\"Tag names\">Tag names\x3c/h3>\n<p>When just a single tag name is used, xpath matches all direct child elements that have that tag name.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${elem} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>third\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${elem.tag}\x3c/td>\n<td>third\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>@{children} =\x3c/td>\n<td><a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a>\x3c/td>\n<td>${elem}\x3c/td>\n<td>child\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Length Should Be\x3c/span>\x3c/td>\n<td>${children}\x3c/td>\n<td>2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Paths\">Paths\x3c/h3>\n<p>Paths are created by combining tag names with a forward slash (<span class=\"name\">/\x3c/span>). For example, <span class=\"name\">parent/child\x3c/span> matches all <span class=\"name\">child\x3c/span> elements under <span class=\"name\">parent\x3c/span> element. Notice that if there are multiple <span class=\"name\">parent\x3c/span> elements that all have <span class=\"name\">child\x3c/span> elements, <span class=\"name\">parent/child\x3c/span> xpath will match all these <span class=\"name\">child\x3c/span> elements.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${elem} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${elem.tag}\x3c/td>\n<td>child\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${elem} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>third/child/grandchild\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${elem.tag}\x3c/td>\n<td>grandchild\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Wildcards\">Wildcards\x3c/h3>\n<p>An asterisk (<span class=\"name\">*\x3c/span>) can be used in paths instead of a tag name to denote any element.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{children} =\x3c/td>\n<td><a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>*/child\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Length Should Be\x3c/span>\x3c/td>\n<td>${children}\x3c/td>\n<td>3\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Current element\">Current element\x3c/h3>\n<p>The current element is denoted with a dot (<span class=\"name\">.\x3c/span>). Normally the current element is implicit and does not need to be included in the xpath.\x3c/p>\n<h3 id=\"Parent element\">Parent element\x3c/h3>\n<p>The parent element of another element is denoted with two dots (<span class=\"name\">..\x3c/span>). Notice that it is not possible to refer to the parent of the current element. This syntax is supported only in ElementTree 1.3 (i.e. Python/Jython 2.7 and newer).\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${elem} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>*/second/..\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${elem.tag}\x3c/td>\n<td>third\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Search all sub elements\">Search all sub elements\x3c/h3>\n<p>Two forward slashes (<span class=\"name\">//\x3c/span>) mean that all sub elements, not only the direct children, are searched. If the search is started from the current element, an explicit dot is required.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{elements} =\x3c/td>\n<td><a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>.//second\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Length Should Be\x3c/span>\x3c/td>\n<td>${elements}\x3c/td>\n<td>2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${b} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>html//b\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${b.text}\x3c/td>\n<td>bold\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Predicates\">Predicates\x3c/h3>\n<p>Predicates allow selecting elements using also other criteria than tag names, for example, attributes or position. They are specified after the normal tag name or path using syntax <span class=\"name\">path[predicate]\x3c/span>. The path can have wildcards and other special syntax explained above.\x3c/p>\n<p>What predicates ElementTree supports is explained in the table below. Notice that predicates in general are supported only in ElementTree 1.3 (i.e. Python/Jython 2.7 and newer).\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Predicate\x3c/th>\n<th>Matches\x3c/th>\n<th>Example\x3c/th>\n\x3c/tr>\n<tr>\n<td>@attrib\x3c/td>\n<td>Elements with attribute <a href=\"#attrib\" class=\"name\">attrib\x3c/a>.\x3c/td>\n<td>second[@id]\x3c/td>\n\x3c/tr>\n<tr>\n<td>@attrib=\"value\"\x3c/td>\n<td>Elements with attribute <a href=\"#attrib\" class=\"name\">attrib\x3c/a> having value <span class=\"name\">value\x3c/span>.\x3c/td>\n<td>*[@id=\"2\"]\x3c/td>\n\x3c/tr>\n<tr>\n<td>position\x3c/td>\n<td>Elements at the specified position. Position can be an integer (starting from 1), expression <span class=\"name\">last()\x3c/span>, or relative expression like <span class=\"name\">last() - 1\x3c/span>.\x3c/td>\n<td>third/child[1]\x3c/td>\n\x3c/tr>\n<tr>\n<td>tag\x3c/td>\n<td>Elements with a child element named <a href=\"#tag\" class=\"name\">tag\x3c/a>.\x3c/td>\n<td>third/child[grandchild]\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Predicates can also be stacked like <span class=\"name\">path[predicate1][predicate2]\x3c/span>. A limitation is that possible position predicate must always be first.\x3c/p>\n<h2 id=\"Element attributes\">Element attributes\x3c/h2>\n<p>All keywords returning elements, such as <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>, and <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>, return ElementTree's <a href=\"http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element\">Element objects\x3c/a>. These elements can be used as inputs for other keywords, but they also contain several useful attributes that can be accessed directly using the extended variable syntax.\x3c/p>\n<p>The attributes that are both useful and convenient to use in the test data are explained below. Also other attributes, including methods, can be accessed, but that is typically better to do in custom libraries than directly in the test data.\x3c/p>\n<p>The examples use the same <span class=\"name\">${XML}\x3c/span> structure as the earlier examples.\x3c/p>\n<h3 id=\"tag\">tag\x3c/h3>\n<p>The tag of the element.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${root.tag}\x3c/td>\n<td>example\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"text\">text\x3c/h3>\n<p>The text that the element contains or Python <span class=\"name\">None\x3c/span> if the element has no text. Notice that the text <i>does not\x3c/i> contain texts of possible child elements nor text after or between children. Notice also that in XML whitespace is significant, so the text contains also possible indentation and newlines. To get also text of the possible children, optionally whitespace normalized, use <a href=\"#Get Element Text\" class=\"name\">Get Element Text\x3c/a> keyword.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${1st} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>first\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${1st.text}\x3c/td>\n<td>text\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${2nd} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${2nd.text}\x3c/td>\n<td>${NONE}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${p} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>html/p\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${p.text}\x3c/td>\n<td>\\n${SPACE*6}Text with${SPACE}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"tail\">tail\x3c/h3>\n<p>The text after the element before the next opening or closing tag. Python <span class=\"name\">None\x3c/span> if the element has no tail. Similarly as with <a href=\"#text\" class=\"name\">text\x3c/a>, also <a href=\"#tail\" class=\"name\">tail\x3c/a> contains possible indentation and newlines.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${b} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>html/p/b\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${b.tail}\x3c/td>\n<td>${SPACE}and${SPACE}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"attrib\">attrib\x3c/h3>\n<p>A Python dictionary containing attributes of the element.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${2nd} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>second\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${2nd.attrib['id']}\x3c/td>\n<td>2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${3rd} =\x3c/td>\n<td><a href=\"#Get Element\" class=\"name\">Get Element\x3c/a>\x3c/td>\n<td>${XML}\x3c/td>\n<td>third\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Empty\x3c/span>\x3c/td>\n<td>${3rd.attrib}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h2 id=\"Handling XML namespaces\">Handling XML namespaces\x3c/h2>\n<p>ElementTree handles possible namespaces in XML documents by adding the namespace URI to tag names in so called Clark Notation. That is inconvenient especially with xpaths, and by default this library strips those namespaces away and moves them to <span class=\"name\">xmlns\x3c/span> attribute instead. That can be avoided by passing <span class=\"name\">keep_clark_notation\x3c/span> argument to <a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a> keyword. The pros and cons of both approaches are discussed in more detail below.\x3c/p>\n<h3 id=\"How ElementTree handles namespaces\">How ElementTree handles namespaces\x3c/h3>\n<p>If an XML document has namespaces, ElementTree adds namespace information to tag names in <a href=\"http://www.jclark.com/xml/xmlns.htm\">Clark Notation\x3c/a> (e.g. <span class=\"name\">{http://ns.uri}tag\x3c/span> and removes original <span class=\"name\">xmlns\x3c/span> attributes. This is done both with default namespaces and with namespaces with a prefix. How it works in practice is illustrated by the following example, where <span class=\"name\">${NS}\x3c/span> variable contains this XML document:\x3c/p>\n<pre>\n&lt;xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n                xmlns=\"http://www.w3.org/1999/xhtml\"&gt;\n  &lt;xsl:template match=\"/\"&gt;\n    &lt;html&gt;&lt;/html&gt;\n  &lt;/xsl:template&gt;\n&lt;/xsl:stylesheet&gt;\n\x3c/pre>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>\x3c/td>\n<td>${NS}\x3c/td>\n<td>keep_clark_notation=yes\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${root.tag}\x3c/td>\n<td>{http://www.w3.org/1999/XSL/Transform}stylesheet\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Should Exist\" class=\"name\">Element Should Exist\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>{http://www.w3.org/1999/XSL/Transform}template/{http://www.w3.org/1999/xhtml}html\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Empty\x3c/span>\x3c/td>\n<td>${root.attrib}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>As you can see, including the namespace URI in tag names makes xpaths really long and complex.\x3c/p>\n<p>If you save the XML, ElementTree moves namespace information back to <span class=\"name\">xmlns\x3c/span> attributes. Unfortunately it does not restore the original prefixes:\x3c/p>\n<pre>\n&lt;ns0:stylesheet xmlns:ns0=\"http://www.w3.org/1999/XSL/Transform\"&gt;\n  &lt;ns0:template match=\"/\"&gt;\n    &lt;ns1:html xmlns:ns1=\"http://www.w3.org/1999/xhtml\"&gt;&lt;/ns1:html&gt;\n  &lt;/ns0:template&gt;\n&lt;/ns0:stylesheet&gt;\n\x3c/pre>\n<p>The resulting output is semantically same as the original, but mangling prefixes like this may still not be desirable. Notice also that the actual output depends slightly on ElementTree version.\x3c/p>\n<h3 id=\"Default namespace handling\">Default namespace handling\x3c/h3>\n<p>Because the way ElementTree handles namespaces makes xpaths so complicated, this library, by default, strips namespaces from tag names and moves that information back to <span class=\"name\">xmlns\x3c/span> attributes. How this works in practice is shown by the example below, where <span class=\"name\">${NS}\x3c/span> variable contains the same XML document as in the previous example.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>\x3c/td>\n<td>${NS}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${root.tag}\x3c/td>\n<td>stylesheet\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Should Exist\" class=\"name\">Element Should Exist\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>template/html\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>xmlns\x3c/td>\n<td><a href=\"http://www.w3.org/1999/XSL/Transform\">http://www.w3.org/1999/XSL/Transform\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>xmlns\x3c/td>\n<td><a href=\"http://www.w3.org/1999/xhtml\">http://www.w3.org/1999/xhtml\x3c/a>\x3c/td>\n<td>xpath=template/html\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Now that tags do not contain namespace information, xpaths are simple again.\x3c/p>\n<p>A minor limitation of this approach is that namespace prefixes are lost. As a result the saved output is not exactly same as the original one in this case either:\x3c/p>\n<pre>\n&lt;stylesheet xmlns=\"http://www.w3.org/1999/XSL/Transform\"&gt;\n  &lt;template match=\"/\"&gt;\n    &lt;html xmlns=\"http://www.w3.org/1999/xhtml\"&gt;&lt;/html&gt;\n  &lt;/template&gt;\n&lt;/stylesheet&gt;\n\x3c/pre>\n<p>Also this output is semantically same as the original. If the original XML had only default namespaces, the output would also looks identical.\x3c/p>\n<h3 id=\"Attribute namespaces\">Attribute namespaces\x3c/h3>\n<p>Attributes in XML documents are, by default, in the same namespaces as the element they belong to. It is possible to use different namespaces by using prefixes, but this is pretty rare.\x3c/p>\n<p>If an attribute has a namespace prefix, ElementTree will replace it with Clark Notation the same way it handles elements. Because stripping namespaces from attributes could cause attribute conflicts, this library does not handle attribute namespaces at all. Thus the following example works the same way regardless how namespaces are handled.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a>\x3c/td>\n<td>&lt;root id=\"1\" ns:id=\"2\" xmlns:ns=\"http://my.ns\"/&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>id\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>\x3c/td>\n<td>${root}\x3c/td>\n<td>{http://my.ns}id\x3c/td>\n<td>2\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2014-02-07 12:24:22","inits":[],"keywords":[{"args":"source, element, index=None, xpath=.","doc":"<p>Adds a child element to the specified element.\x3c/p>\n<p>The element to whom to add the new element is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>The <span class=\"name\">element\x3c/span> to add can be specified as a path to an XML file or as a string containing XML, or it can be an already parsed XML element. The element is copied before adding so modifying either the original or the added element has no effect on the other . The element is added as the last child by default, but a custom index can be used to alter the position. Indices start from zero (0 = first position, 1 = second position, etc.), and negative numbers refer to positions at the end (-1 = second last position, -2 = third last, etc.).\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Add Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>&lt;new id=\"x\"&gt;&lt;c1/&gt;&lt;/new&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Add Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>&lt;c2/&gt;\x3c/td>\n<td>xpath=new\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Add Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>&lt;c3/&gt;\x3c/td>\n<td>index=1\x3c/td>\n<td>xpath=new\x3c/td>\n\x3c/tr>\n<tr>\n<td>${new} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>new\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${new}\x3c/td>\n<td>&lt;new id=\"x\"&gt;&lt;c1/&gt;&lt;c3/&gt;&lt;c2/&gt;&lt;/new&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Use <a href=\"#Remove Element\" class=\"name\">Remove Element\x3c/a> or <a href=\"#Remove Elements\" class=\"name\">Remove Elements\x3c/a> to remove elements.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Add Element","shortdoc":"Adds a child element to the specified element."},{"args":"source, xpath=., clear_tail=False","doc":"<p>Clears the contents of the specified element.\x3c/p>\n<p>The element to clear is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>Clearing the element means removing its text, attributes, and children. Element's tail text is not removed by default, but that can be changed by giving <span class=\"name\">clear_tail\x3c/span> a true value (e.g. any non-empty string). See <a href=\"#Element attributes\" class=\"name\">Element attributes\x3c/a> section for more information about tail in general.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Clear Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${first} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${first}\x3c/td>\n<td>&lt;first/&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Clear Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=html/p/b\x3c/td>\n<td>clear_tail=yes\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>Text with italics.\x3c/td>\n<td>xpath=html/p\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n<tr>\n<td>Clear Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${XML}\x3c/td>\n<td>&lt;example/&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Use <a href=\"#Remove Element\" class=\"name\">Remove Element\x3c/a> to remove the whole element.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Clear Element","shortdoc":"Clears the contents of the specified element."},{"args":"source, xpath=.","doc":"<p>Returns a copy of the specified element.\x3c/p>\n<p>The element to copy is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>If the copy or the original element is modified afterwards, the changes have no effect on the other.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${elem} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>${copy1} =\x3c/td>\n<td>Copy Element\x3c/td>\n<td>${elem}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${copy2} =\x3c/td>\n<td>Copy Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>new text\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Attribute\x3c/td>\n<td>${copy1}\x3c/td>\n<td>id\x3c/td>\n<td>new\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${elem}\x3c/td>\n<td>&lt;first id=\"1\"&gt;new text&lt;/first&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${copy1}\x3c/td>\n<td>&lt;first id=\"new\"&gt;text&lt;/first&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${copy2}\x3c/td>\n<td>&lt;first id=\"1\"&gt;text&lt;/first&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Copy Element","shortdoc":"Returns a copy of the specified element."},{"args":"source, name, expected, xpath=., message=None","doc":"<p>Verifies that the specified attribute is <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>The element whose attribute is verified is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The keyword passes if the attribute <span class=\"name\">name\x3c/span> of the element is equal to the <span class=\"name\">expected\x3c/span> value, and otherwise it fails. The default error message can be overridden with the <span class=\"name\">message\x3c/span> argument.\x3c/p>\n<p>To test that the element does not have a certain attribute, Python <span class=\"name\">None\x3c/span> (i.e. variable <span class=\"name\">${NONE}\x3c/span>) can be used as the <span class=\"name\">expected\x3c/span> value. A cleaner alternative is using <a href=\"#Element Should Not Have Attribute\" class=\"name\">Element Should Not Have Attribute\x3c/a>.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>1\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>${NONE}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See also <a href=\"#Element Attribute Should Match\" class=\"name\">Element Attribute Should Match\x3c/a> and <a href=\"#Get Element Attribute\" class=\"name\">Get Element Attribute\x3c/a>.\x3c/p>","name":"Element Attribute Should Be","shortdoc":"Verifies that the specified attribute is `expected`."},{"args":"source, name, pattern, xpath=., message=None","doc":"<p>Verifies that the specified attribute matches <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>This keyword works exactly like <a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a> except that the expected value can be given as a pattern that the attribute of the element must match.\x3c/p>\n<p>Pattern matching is similar as matching files in a shell, and it is always case-sensitive. In the pattern, '*' matches anything and '?' matches any single character.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>?\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>c*d\x3c/td>\n<td>xpath=third/second\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Element Attribute Should Match","shortdoc":"Verifies that the specified attribute matches `expected`."},{"args":"source, xpath=., message=None","doc":"<p>Verifies that one or more element match the given <span class=\"name\">xpath\x3c/span>.\x3c/p>\n<p>Arguments <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span> have exactly the same semantics as with <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> keyword. Keyword passes if the <span class=\"name\">xpath\x3c/span> matches one or more elements in the <span class=\"name\">source\x3c/span>. The default error message can be overridden with the <span class=\"name\">message\x3c/span> argument.\x3c/p>\n<p>See also <a href=\"#Element Should Not Exist\" class=\"name\">Element Should Not Exist\x3c/a> as well as <a href=\"#Get Element Count\" class=\"name\">Get Element Count\x3c/a> that this keyword uses internally.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Element Should Exist","shortdoc":"Verifies that one or more element match the given `xpath`."},{"args":"source, xpath=., message=None","doc":"<p>Verifies that no element match the given <span class=\"name\">xpath\x3c/span>.\x3c/p>\n<p>Arguments <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span> have exactly the same semantics as with <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> keyword. Keyword fails if the <span class=\"name\">xpath\x3c/span> matches any element in the <span class=\"name\">source\x3c/span>. The default error message can be overridden with the <span class=\"name\">message\x3c/span> argument.\x3c/p>\n<p>See also <a href=\"#Element Should Exist\" class=\"name\">Element Should Exist\x3c/a> as well as <a href=\"#Get Element Count\" class=\"name\">Get Element Count\x3c/a> that this keyword uses internally.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Element Should Not Exist","shortdoc":"Verifies that no element match the given `xpath`."},{"args":"source, name, xpath=., message=None","doc":"<p>Verifies that the specified element does not have  attribute <span class=\"name\">name\x3c/span>.\x3c/p>\n<p>The element whose attribute is verified is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The keyword fails if the specified element has attribute <span class=\"name\">name\x3c/span>. The default error message can be overridden with the <span class=\"name\">message\x3c/span> argument.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Should Not Have Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Have Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>xxx\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See also <a href=\"#Get Element Attribute\" class=\"name\">Get Element Attribute\x3c/a>, <a href=\"#Get Element Attributes\" class=\"name\">Get Element Attributes\x3c/a>, <a href=\"#Element Text Should Be\" class=\"name\">Element Text Should Be\x3c/a> and <a href=\"#Element Text Should Match\" class=\"name\">Element Text Should Match\x3c/a>.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Element Should Not Have Attribute","shortdoc":"Verifies that the specified element does not have  attribute `name`."},{"args":"source, expected, xpath=., normalize_whitespace=False, message=None","doc":"<p>Verifies that the text of the specified element is <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>The element whose text is verified is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The text to verify is got from the specified element using the same logic as with <a href=\"#Get Element Text\" class=\"name\">Get Element Text\x3c/a>. This includes optional whitespace normalization using the <span class=\"name\">normalize_whitespace\x3c/span> option.\x3c/p>\n<p>The keyword passes if the text of the element is equal to the <span class=\"name\">expected\x3c/span> value, and otherwise it fails. The default error message can be overridden with the <span class=\"name\">message\x3c/span> argument.  Use <a href=\"#Element Text Should Match\" class=\"name\">Element Text Should Match\x3c/a> to verify the text against a pattern instead of an exact value.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>text\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>${EMPTY}\x3c/td>\n<td>xpath=second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>${paragraph} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=html/p\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${paragraph}\x3c/td>\n<td>Text with bold and italics.\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Element Text Should Be","shortdoc":"Verifies that the text of the specified element is `expected`."},{"args":"source, pattern, xpath=., normalize_whitespace=False, message=None","doc":"<p>Verifies that the text of the specified element matches <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>This keyword works exactly like <a href=\"#Element Text Should Be\" class=\"name\">Element Text Should Be\x3c/a> except that the expected value can be given as a pattern that the text of the element must match.\x3c/p>\n<p>Pattern matching is similar as matching files in a shell, and it is always case-sensitive. In the pattern, '*' matches anything and '?' matches any single character.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Text Should Match\x3c/td>\n<td>${XML}\x3c/td>\n<td>t???\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>${paragraph} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=html/p\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Match\x3c/td>\n<td>${paragraph}\x3c/td>\n<td>Text with * and *.\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Element Text Should Match","shortdoc":"Verifies that the text of the specified element matches `expected`."},{"args":"source, xpath=.","doc":"<p>Returns the string representation of the specified element.\x3c/p>\n<p>The element to convert to a string is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The returned string is in Unicode format and it does not contain any XML declaration.\x3c/p>\n<p>See also <a href=\"#Log Element\" class=\"name\">Log Element\x3c/a> and <a href=\"#Save Xml\" class=\"name\">Save XML\x3c/a>.\x3c/p>","name":"Element To String","shortdoc":"Returns the string representation of the specified element."},{"args":"source, expected, exclude_children=False, normalize_whitespace=False","doc":"<p>Verifies that the given <span class=\"name\">source\x3c/span> element is equal to <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>Both <span class=\"name\">source\x3c/span> and <span class=\"name\">expected\x3c/span> can be given as a path to an XML file, as a string containing XML, or as an already parsed XML element structure. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about parsing XML in general.\x3c/p>\n<p>The keyword passes if the <span class=\"name\">source\x3c/span> element and <span class=\"name\">expected\x3c/span> element are equal. This includes testing the tag names, texts, and attributes of the elements. By default also child elements are verified the same way, but this can be disabled by setting <span class=\"name\">exclude_children\x3c/span> to any true value (e.g. any non-empty string).\x3c/p>\n<p>All texts inside the given elements are verified, but possible text outside them is not. By default texts must match exactly, but setting <span class=\"name\">normalize_whitespace\x3c/span> to any true value makes text verification independent on newlines, tabs, and the amount of spaces. For more details about handling text see <a href=\"#Get Element Text\" class=\"name\">Get Element Text\x3c/a> keyword and discussion about elements' <a href=\"#text\" class=\"name\">text\x3c/a> and <a href=\"#tail\" class=\"name\">tail\x3c/a> attributes in the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${first} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${first}\x3c/td>\n<td>&lt;first id=\"1\"&gt;text&lt;/first&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${p} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>html/p\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${p}\x3c/td>\n<td>&lt;p&gt;Text with &lt;b&gt;bold&lt;/b&gt; and &lt;i&gt;italics&lt;/i&gt;.&lt;/p&gt;\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Be Equal\x3c/td>\n<td>${p}\x3c/td>\n<td>&lt;p&gt;Text with&lt;/p&gt;\x3c/td>\n<td>exclude\x3c/td>\n<td>normalize\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The last example may look a bit strange because the <span class=\"name\">&lt;p&gt;\x3c/span> element only has text <span class=\"name\">Text with\x3c/span>. The reason is that rest of the text inside <span class=\"name\">&lt;p&gt;\x3c/span> actually belongs to the child elements.\x3c/p>\n<p>See also <a href=\"#Elements Should Match\" class=\"name\">Elements Should Match\x3c/a>.\x3c/p>","name":"Elements Should Be Equal","shortdoc":"Verifies that the given `source` element is equal to `expected`."},{"args":"source, expected, exclude_children=False, normalize_whitespace=False","doc":"<p>Verifies that the given <span class=\"name\">source\x3c/span> element matches <span class=\"name\">expected\x3c/span>.\x3c/p>\n<p>This keyword works exactly like <a href=\"#Elements Should Be Equal\" class=\"name\">Elements Should Be Equal\x3c/a> except that texts and attribute values in the expected value can be given as patterns.\x3c/p>\n<p>Pattern matching is similar as matching files in a shell, and it is always case-sensitive. In the pattern, '*' matches anything and '?' matches any single character.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${first} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Elements Should Match\x3c/td>\n<td>${first}\x3c/td>\n<td>&lt;first id=\"?\"&gt;*&lt;/first&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Elements Should Be Equal\" class=\"name\">Elements Should Be Equal\x3c/a> for more examples.\x3c/p>","name":"Elements Should Match","shortdoc":"Verifies that the given `source` element matches `expected`."},{"args":"source, xpath=.","doc":"<p>Returns the child elements of the specified element as a list.\x3c/p>\n<p>The element whose children to return is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>All the direct child elements of the specified element are returned. If the element has no children, an empty list is returned.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${children} =\x3c/td>\n<td>Get Child Elements\x3c/td>\n<td>${XML}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Length Should Be\x3c/td>\n<td>${children}\x3c/td>\n<td>4\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${children} =\x3c/td>\n<td>Get Child Elements\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Empty\x3c/td>\n<td>${children}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Get Child Elements","shortdoc":"Returns the child elements of the specified element as a list."},{"args":"source, xpath=.","doc":"<p>Returns an element in the <span class=\"name\">source\x3c/span> matching the <span class=\"name\">xpath\x3c/span>.\x3c/p>\n<p>The <span class=\"name\">source\x3c/span> can be a path to an XML file, a string containing XML, or an already parsed XML element. The <span class=\"name\">xpath\x3c/span> specifies which element to find. See the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more details about both the possible sources and the supported xpath syntax.\x3c/p>\n<p>The keyword fails if more, or less, than one element matches the <span class=\"name\">xpath\x3c/span>. Use <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> if you want all matching elements to be returned.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${element} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>second\x3c/td>\n\x3c/tr>\n<tr>\n<td>${child} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${element}\x3c/td>\n<td>child\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><a href=\"#Parse Xml\" class=\"name\">Parse XML\x3c/a> is recommended for parsing XML when the whole structure is needed. It must be used if there is a need to configure how XML namespaces are handled.\x3c/p>","name":"Get Element","shortdoc":"Returns an element in the `source` matching the `xpath`."},{"args":"source, name, xpath=., default=None","doc":"<p>Returns the named attribute of the specified element.\x3c/p>\n<p>The element whose attribute to return is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The value of the attribute <span class=\"name\">name\x3c/span> of the specified element is returned. If the element does not have such element, the <span class=\"name\">default\x3c/span> value is returned instead.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${attribute} =\x3c/td>\n<td>Get Element Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${attribute}\x3c/td>\n<td>1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${attribute} =\x3c/td>\n<td>Get Element Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>xx\x3c/td>\n<td>xpath=first\x3c/td>\n<td>default=value\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${attribute}\x3c/td>\n<td>value\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See also <a href=\"#Get Element Attributes\" class=\"name\">Get Element Attributes\x3c/a>, <a href=\"#Element Attribute Should Be\" class=\"name\">Element Attribute Should Be\x3c/a>, <a href=\"#Element Attribute Should Match\" class=\"name\">Element Attribute Should Match\x3c/a> and <a href=\"#Element Should Not Have Attribute\" class=\"name\">Element Should Not Have Attribute\x3c/a>.\x3c/p>","name":"Get Element Attribute","shortdoc":"Returns the named attribute of the specified element."},{"args":"source, xpath=.","doc":"<p>Returns all attributes of the specified element.\x3c/p>\n<p>The element whose attributes to return is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>Attributes are returned as a Python dictionary. It is a copy of the original attributes so modifying it has no effect on the XML structure.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${attributes} =\x3c/td>\n<td>Get Element Attributes\x3c/td>\n<td>${XML}\x3c/td>\n<td>first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Dictionary Should Contain Key\x3c/td>\n<td>${attributes}\x3c/td>\n<td>id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${attributes} =\x3c/td>\n<td>Get Element Attributes\x3c/td>\n<td>${XML}\x3c/td>\n<td>third\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Empty\x3c/td>\n<td>${attributes}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Use <a href=\"#Get Element Attribute\" class=\"name\">Get Element Attribute\x3c/a> to get the value of a single attribute.\x3c/p>","name":"Get Element Attributes","shortdoc":"Returns all attributes of the specified element."},{"args":"source, xpath=.","doc":"<p>Returns and logs how many elements the given <span class=\"name\">xpath\x3c/span> matches.\x3c/p>\n<p>Arguments <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span> have exactly the same semantics as with <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> keyword that this keyword uses internally.\x3c/p>\n<p>See also <a href=\"#Element Should Exist\" class=\"name\">Element Should Exist\x3c/a> and <a href=\"#Element Should Not Exist\" class=\"name\">Element Should Not Exist\x3c/a>.\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Get Element Count","shortdoc":"Returns and logs how many elements the given `xpath` matches."},{"args":"source, xpath=., normalize_whitespace=False","doc":"<p>Returns all text of the element, possibly whitespace normalized.\x3c/p>\n<p>The element whose text to return is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>This keyword returns all the text of the specified element, including all the text its children and grandchildren contains. If the element has no text, an empty string is returned. As discussed in the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>, the returned text is thus not always the same as the <a href=\"#text\" class=\"name\">text\x3c/a> attribute of the element.\x3c/p>\n<p>Be default all whitespace, including newlines and indentation, inside the element is returned as-is. If <span class=\"name\">normalize_whitespace\x3c/span> is given any true value (e.g. any non-empty string), then leading and trailing whitespace is stripped, newlines and tabs converted to spaces, and multiple spaces collapsed into one. This is especially useful when dealing with HTML data.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${text} =\x3c/td>\n<td>Get Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${text}\x3c/td>\n<td>text\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${text} =\x3c/td>\n<td>Get Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Empty\x3c/td>\n<td>${text}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${paragraph} =\x3c/td>\n<td>Get Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>html/p\x3c/td>\n\x3c/tr>\n<tr>\n<td>${text} =\x3c/td>\n<td>Get Element Text\x3c/td>\n<td>${paragraph}\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${text}\x3c/td>\n<td>Text with bold and italics.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See also <a href=\"#Get Elements Texts\" class=\"name\">Get Elements Texts\x3c/a>, <a href=\"#Element Text Should Be\" class=\"name\">Element Text Should Be\x3c/a> and <a href=\"#Element Text Should Match\" class=\"name\">Element Text Should Match\x3c/a>.\x3c/p>","name":"Get Element Text","shortdoc":"Returns all text of the element, possibly whitespace normalized."},{"args":"source, xpath","doc":"<p>Returns a list of elements in the <span class=\"name\">source\x3c/span> matching the <span class=\"name\">xpath\x3c/span>.\x3c/p>\n<p>The <span class=\"name\">source\x3c/span> can be a path to an XML file, a string containing XML, or an already parsed XML element. The <span class=\"name\">xpath\x3c/span> specifies which element to find. See the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more details.\x3c/p>\n<p>Elements matching the <span class=\"name\">xpath\x3c/span> are returned as a list. If no elements match, an empty list is returned. Use <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> if you want to get exactly one match.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${children} =\x3c/td>\n<td>Get Elements\x3c/td>\n<td>${XML}\x3c/td>\n<td>third/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Length Should Be\x3c/td>\n<td>${children}\x3c/td>\n<td>2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${children} =\x3c/td>\n<td>Get Elements\x3c/td>\n<td>${XML}\x3c/td>\n<td>first/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Empty\x3c/td>\n<td>${children}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Get Elements","shortdoc":"Returns a list of elements in the `source` matching the `xpath`."},{"args":"source, xpath, normalize_whitespace=False","doc":"<p>Returns text of all elements matching <span class=\"name\">xpath\x3c/span> as a list.\x3c/p>\n<p>The elements whose text to return is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> keyword.\x3c/p>\n<p>The text of the matched elements is returned using the same logic as with <a href=\"#Get Element Text\" class=\"name\">Get Element Text\x3c/a>. This includes optional whitespace normalization using the <span class=\"name\">normalize_whitespace\x3c/span> option.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from the <a href=\"#Introduction\" class=\"name\">introduction\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{texts} =\x3c/td>\n<td>Get Elements Texts\x3c/td>\n<td>${XML}\x3c/td>\n<td>third/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Length Should Be\x3c/td>\n<td>${texts}\x3c/td>\n<td>2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>@{texts}[0]\x3c/td>\n<td>more text\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>@{texts}[1]\x3c/td>\n<td>${EMPTY}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","name":"Get Elements Texts","shortdoc":"Returns text of all elements matching `xpath` as a list."},{"args":"source, level=INFO, xpath=.","doc":"<p>Logs the string representation of the specified element.\x3c/p>\n<p>The element specified with <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span> is first converted into a string using <a href=\"#Element To String\" class=\"name\">Element To String\x3c/a> keyword internally. The resulting string is then logged using the given <span class=\"name\">level\x3c/span>.\x3c/p>\n<p>The logged string is also returned.\x3c/p>","name":"Log Element","shortdoc":"Logs the string representation of the specified element."},{"args":"source, keep_clark_notation=False","doc":"<p>Parses the given XML file or string into an element structure.\x3c/p>\n<p>The <span class=\"name\">source\x3c/span> can either be a path to an XML file or a string containing XML. In both cases the XML is parsed into ElementTree <a href=\"http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element\">element structure\x3c/a> and the root element is returned.\x3c/p>\n<p>As discussed in <a href=\"#Handling XML namespaces\" class=\"name\">Handling XML namespaces\x3c/a> section, this keyword, by default, strips possible namespaces added by ElementTree into tag names. This typically eases handling XML documents with namespaces considerably. If you do not want that to happen, or want to avoid the small overhead of going through the element structure when your XML does not have namespaces, you can disable this feature by giving <span class=\"name\">keep_clark_notation\x3c/span> argument a true value (e.g. any non-empty string).\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${root} =\x3c/td>\n<td>Parse XML\x3c/td>\n<td>&lt;root&gt;&lt;child/&gt;&lt;/root&gt;\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${xml} =\x3c/td>\n<td>Parse XML\x3c/td>\n<td>${CURDIR}/test.xml\x3c/td>\n<td>no namespace cleanup\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Use <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword if you want to get a certain element and not the whole structure. See <a href=\"#Parsing XML\" class=\"name\">Parsing XML\x3c/a> section for more details and examples\x3c/p>\n<p>Stripping namespaces is a new feature in Robot Framework 2.7.5.\x3c/p>","name":"Parse Xml","shortdoc":"Parses the given XML file or string into an element structure."},{"args":"source, xpath=, remove_tail=False","doc":"<p>Removes the element matching <span class=\"name\">xpath\x3c/span> from the <span class=\"name\">source\x3c/span> structure.\x3c/p>\n<p>The element to remove from the <span class=\"name\">source\x3c/span> is specified with <span class=\"name\">xpath\x3c/span> using the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>The keyword fails if <span class=\"name\">xpath\x3c/span> does not match exactly one element. Use <a href=\"#Remove Elements\" class=\"name\">Remove Elements\x3c/a> to remove all matched elements.\x3c/p>\n<p>Element's tail text is not removed by default, but that can be changed by giving <span class=\"name\">remove_tail\x3c/span> a true value (e.g. any non-empty string). See <a href=\"#Element attributes\" class=\"name\">Element attributes\x3c/a> section for more information about tail in general.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=second\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Exist\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=second\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Remove Element\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=html/p/b\x3c/td>\n<td>remove_tail=yes\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>Text with italics.\x3c/td>\n<td>xpath=html/p\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Remove Element","shortdoc":"Removes the element matching `xpath` from the `source` structure."},{"args":"source, name, xpath=.","doc":"<p>Removes attribute <span class=\"name\">name\x3c/span> from the specified element.\x3c/p>\n<p>The element whose attribute to remove is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>It is not a failure to remove a non-existing attribute. Use <a href=\"#Remove Element Attributes\" class=\"name\">Remove Element Attributes\x3c/a> to remove all attributes and <a href=\"#Set Element Attribute\" class=\"name\">Set Element Attribute\x3c/a> to set them.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Element Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Have Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Remove Element Attribute","shortdoc":"Removes attribute `name` from the specified element."},{"args":"source, xpath=.","doc":"<p>Removes all attributes from the specified element.\x3c/p>\n<p>The element whose attributes to remove is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>Use <a href=\"#Remove Element Attribute\" class=\"name\">Remove Element Attribute\x3c/a> to remove a single attribute and <a href=\"#Set Element Attribute\" class=\"name\">Set Element Attribute\x3c/a> to set them.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Element Attributes\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Have Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Remove Element Attributes","shortdoc":"Removes all attributes from the specified element."},{"args":"source, xpath=, remove_tail=False","doc":"<p>Removes all elements matching <span class=\"name\">xpath\x3c/span> from the <span class=\"name\">source\x3c/span> structure.\x3c/p>\n<p>The elements to remove from the <span class=\"name\">source\x3c/span> are specified with <span class=\"name\">xpath\x3c/span> using the same semantics as with <a href=\"#Get Elements\" class=\"name\">Get Elements\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>It is not a failure if <span class=\"name\">xpath\x3c/span> matches no elements. Use <a href=\"#Remove Element\" class=\"name\">Remove Element\x3c/a> to remove exactly one element and <a href=\"#Add Element\" class=\"name\">Add Element\x3c/a> to add new ones.\x3c/p>\n<p>Element's tail text is not removed by default, but that can be changed by using <span class=\"name\">remove_tail\x3c/span> argument similarly as with <a href=\"#Remove Element\" class=\"name\">Remove Element\x3c/a>.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Elements\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=*/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Exist\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Exist\x3c/td>\n<td>${XML}\x3c/td>\n<td>xpath=third/child\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Remove Elements","shortdoc":"Removes all elements matching `xpath` from the `source` structure."},{"args":"source, path, encoding=UTF-8","doc":"<p>Saves the given element to the specified file.\x3c/p>\n<p>The element to save is specified with <span class=\"name\">source\x3c/span> using the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword.\x3c/p>\n<p>The file where the element is saved is denoted with <span class=\"name\">path\x3c/span> and the encoding to use with <span class=\"name\">encoding\x3c/span>. The resulting file contains an XML declaration.\x3c/p>\n<p>Use <a href=\"#Element To String\" class=\"name\">Element To String\x3c/a> if you just need a string representation of the element,\x3c/p>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Save Xml","shortdoc":"Saves the given element to the specified file."},{"args":"source, name, value, xpath=.","doc":"<p>Sets attribute <span class=\"name\">name\x3c/span> of the specified element to <span class=\"name\">value\x3c/span>\x3c/p>\n<p>The element whose attribute to set is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>It is possible to both set new attributes and to overwrite existing. Use <a href=\"#Remove Element Attribute\" class=\"name\">Remove Element Attribute\x3c/a> or <a href=\"#Remove Element Attributes\" class=\"name\">Remove Element Attributes\x3c/a> for removing them.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Set Element Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>attr\x3c/td>\n<td>value\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>attr\x3c/td>\n<td>value\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Attribute\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>new\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>id\x3c/td>\n<td>new\x3c/td>\n<td>xpath=first\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Set Element Attribute","shortdoc":"Sets attribute `name` of the specified element to `value`"},{"args":"source, tag, xpath=.","doc":"<p>Sets the tag of the specified element to <a href=\"#tag\" class=\"name\">tag\x3c/a>.\x3c/p>\n<p>The element whose tag to set is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Set Element Tag\x3c/td>\n<td>${XML}\x3c/td>\n<td>newTag\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${XML.tag}\x3c/td>\n<td>newTag\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Tag\x3c/td>\n<td>${XML}\x3c/td>\n<td>xxx\x3c/td>\n<td>xpath=second/child\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Exist\x3c/td>\n<td>${XML}\x3c/td>\n<td>second/xxx\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Should Not Exist\x3c/td>\n<td>${XML}\x3c/td>\n<td>second/child\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Set Element Tag","shortdoc":"Sets the tag of the specified element to `tag`."},{"args":"source, text=None, tail=None, xpath=.","doc":"<p>Sets text and/or tail text of the specified element.\x3c/p>\n<p>The element whose text to set is specified using <span class=\"name\">source\x3c/span> and <span class=\"name\">xpath\x3c/span>. They have exactly the same semantics as with <a href=\"#Get Element\" class=\"name\">Get Element\x3c/a> keyword. The given <span class=\"name\">source\x3c/span> structure  is modified and also returned.\x3c/p>\n<p>Element's text and tail text are changed only if new <a href=\"#text\" class=\"name\">text\x3c/a> and/or <a href=\"#tail\" class=\"name\">tail\x3c/a> values are given. See <a href=\"#Element attributes\" class=\"name\">Element attributes\x3c/a> section for more information about text and tail in general.\x3c/p>\n<p>Examples using <span class=\"name\">${XML}\x3c/span> structure from <a href=\"#Example\" class=\"name\">Example\x3c/a>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Set Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>new text\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>new text\x3c/td>\n<td>xpath=first\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>tail=&amp;\x3c/td>\n<td>xpath=html/p/b\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>Text with bold&amp;italics.\x3c/td>\n<td>xpath=html/p\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Element Text\x3c/td>\n<td>${XML}\x3c/td>\n<td>slanted\x3c/td>\n<td>!!\x3c/td>\n<td>xpath=html/p/i\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Text Should Be\x3c/td>\n<td>${XML}\x3c/td>\n<td>Text with bold&amp;slanted!!\x3c/td>\n<td>xpath=html/p\x3c/td>\n<td>normalize_whitespace=yes\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Robot Framework 2.7.5.\x3c/p>","name":"Set Element Text","shortdoc":"Sets text and/or tail text of the specified element."}],"name":"XML","named_args":true,"scope":"global","version":"2.8.4"};
</script>
<title></title>
</head>
<body>

<div id="javascript_disabled">
  <h1>Opening library documentation failed</h1>
  <ul>
    <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
    <li>Make sure you are using a <b>modern enough browser</b>. Firefox 3.5, IE 8, or equivalent is required, newer browsers are recommended.</li>
    <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
  </ul>
</div>

<script type="text/javascript">
    // Not using jQuery here for speed and to support ancient browsers.
    document.getElementById('javascript_disabled').style.display = 'none';
</script>

<script type="text/javascript">
    $(document).ready(function() {
        parseTemplates();
        document.title = libdoc.name;
        $.tmpl('start_template', libdoc).appendTo($('body'));
        if (libdoc.inits.length > 0) {
            $.tmpl('importing_template', libdoc).appendTo($('body'));
        }
        $.tmpl('shortcuts_template', libdoc).appendTo($('body'));
        $.tmpl('keywords_template', libdoc).appendTo($('body'));
        $.tmpl('footer_template', libdoc).appendTo($('body'));
        scrollToHash();
    });

    function parseTemplates() {
        $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
            $.template(elem.id, elem.text);
        });
    }

    function scrollToHash() {
        if (window.location.hash)
            window.location.hash = window.location.hash.substring(1);
    }
</script>

<script type="text/x-jquery-tmpl" id="start_template">
    <h1>${name}</h1>
    <table class="metadata">
    {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
    {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
    <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
    </table>
    <h2 id="Introduction">Introduction</h2>
    <div class="doc">{{html doc}}</div>
</script>

<script type="text/x-jquery-tmpl" id="importing_template">
    <h2 id="Importing">Importing</h2>
    <table border="1" class="keywords">
        <tr>
            <th class="arg">Arguments</th>
            <th class="doc">Documentation</th>
        </tr>
        {{each inits}}
        <tr>
            <td class="arg">${$value.args}</td>
            <td class="doc">{{html $value.doc}}</td>
        </tr>
        {{/each}}
    </table>
</script>

<script type="text/x-jquery-tmpl" id="shortcuts_template">
    <h2 id="Shortcuts">Shortcuts</h2>
    <div class='shortcuts'>
        {{each keywords}}
            <a href="#${$value.name}" title="${$value.shortdoc}">${$value.name}</a>
            {{if $index < keywords.length-1}} &middot; {{/if}}
        {{/each}}
    </div>
</script>

<script type="text/x-jquery-tmpl" id="keywords_template">
    <h2 id="Keywords">Keywords</h2>
    <table border="1" class="keywords">
        <tr>
            <th class="kw">Keyword</th>
            <th class="arg">Arguments</th>
            <th class="doc">Documentation</th>
        </tr>
        {{each keywords}}
        <tr>
            <td class="kw"><a name="${$value.name}"></a>${$value.name}</td>
            <td class="arg">${$value.args}</td>
            <td class="doc">{{html $value.doc}}</td>
        </tr>
        {{/each}}
    </table>
</script>
<script type="text/x-jquery-tmpl" id="footer_template">
    <p class="footer">
        Altogether ${keywords.length} keywords.<br>
        Generated by <a href="http://code.google.com/p/robotframework/wiki/LibraryDocumentationTool">libdoc</a>
        on ${generated}.
    </p>
</script>

</body>
</html>
